package com.tank.game.api;

import java.util.function.BiConsumer;

/**
 * 移动
 *
 * @author Zed
 */
public interface Move<R> {

    /**
     * 移动的速率
     *
     * @return {@link Double}
     */
    default double getSpeed() {
        return 1.0d;
    }

    /**
     * 移动
     *
     * @param position {@link Position},未来移动到的位置
     */
    void execMove(BiConsumer<Position, R> position);

    /**
     * 移动
     *
     * @param position {@link Position},未来移动到的位置
     */
    boolean execMove(Position position);

}
